﻿namespace KinonekoSoftware.Studio.Models.Modules
{
    public interface IGroupedPresenter : IBlockPresenter
    {
        /// <summary>
        /// 获得当前元素分组中的所有元素。
        /// </summary>
        /// <returns></returns>
        IEnumerable<ModulePresenter> GetElements();

        /// <summary>
        /// 新建一个子项
        /// </summary>
        ModulePresenter NewItem();

        void ShiftUpItem(ModulePresenter target);

        void ShiftDownItem(ModulePresenter target);

        void RemoveItem(ModulePresenter target);
        
        //
        //
        string Title { get; }
        
        //
        //
        string Description { get; }
    }

    public interface IBlockPresenter
    {
        //
        //
        ModuleBlock GetBlock();
    }
}